为 Squid 服务创建 keytab 文件

您可以使用相同的用户账户在集群的所有节点上进行身份验证。为此,您必须为这些节点中的每一个创建一个包含服务主体名称 (SPN)keytab 文件。创建 keytab 文件时,必须使用属性生成(哈希函数修饰符)。

生成的盐必须使用您选择的方法进行保存,以便随后将新的 SPN 添加到 keytab 文件中。

您还可以为要为其配置 Kerberos 身份验证的每个集群节点创建单独的 Active Directory 用户账户。

使用域管理员账户,在域控制器服务器或属于该域的 Windows Server 计算机上创建 keytab 文件。

要使用单个用户账户为 Squid 服务创建 keytab 文件:

  1. 在“Active Directory 用户和计算机”管理单元中,创建一个名称为 squid-user 的用户账户。
  2. 要使用 AES256-SHA1 加密算法,请在 Active Directory 用户和计算机管理单元中执行以下操作:
    1. 打开创建的账户的属性。
    2. 账户选项卡中,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为 squid-user 创建 keytab 文件。为此,请在命令行运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<具有 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名> -mapuser squid-user@<realm 大写 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <文件路径>\<文件名>.keytab

    应该用小写指定托管 Squid 服务的服务器名称(例如,proxy.company.com)。

    当您运行命令时,该实用程序会提示您输入 squid-user 的密码。

    控制节点的 SPN 条目将添加到创建的 keytab 文件中。将显示生成的盐:带有盐“<哈希值>”的哈希密码。

  4. 对于集群的每个节点,将 SPN 条目添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<节点的完全限定域名 (FQDN)>@<realm 大写 Active Directory 域名> -mapuser squid-user@<realm 大写 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab -setupn -setpass -rawsalt "<在第 3 步创建 keytab 文件时获得的盐的哈希值>"

    当您运行命令时,该实用程序会提示您输入 squid-user 的密码。

将为 Squid 服务创建 keytab 文件。此文件将包含集群节点的所有已添加的 SPN。

示例:

例如,您需要创建包含以下 3 个节点的 SPN 的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 文件夹中创建包含控制节点 SPN 的 filename1.keytab 文件,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser squid-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\filename1.keytab

假定您获得了盐 "TEST.LOCALHTTPcontrol-01.test.local"

要再添加一个 SPN,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser squid-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

要添加第三个 SPN,您必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser squid-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

这将导致创建一个名为 filename3.keytab 的文件,其中包含所有三个添加的 SPN。

要针对每个节点使用单独的用户账户为 Squid 服务器创建 keytab 文件:

  1. 在“Active Directory 用户和计算机”管理单元中,为每个集群节点创建一个单独的用户账户(例如,名称为 squid-usersquid-user2squid-user3 等的用户账户)。
  2. 要使用 AES256-SHA1 加密算法,请在 Active Directory 用户和计算机管理单元中执行以下操作:
    1. 打开创建的账户的属性。
    2. 账户选项卡中,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为 squid-user 创建 keytab 文件。为此,请在命令行运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<具有 Squid 服务的服务器小写名称>@<realm 大写 Active Directory 域名> -mapuser squid-user@<realm 大写 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <文件路径>\<文件名>.keytab

    应该用小写指定托管 Squid 服务的服务器名称(例如,proxy.company.com)。

    当您运行命令时,该实用程序会提示您输入 squid-user 的密码。

    控制节点的 SPN 条目将添加到创建的 keytab 文件中。

  4. 对于集群的每个节点,将 SPN 条目添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<节点的完全限定域名 (FQDN)>@<realm 大写 Active Directory 域名> -mapuser squid-user2@<realm 大写 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab

    当您运行命令时,该实用程序会提示您输入 squid-user2 的密码。

将为 Squid 服务创建 keytab 文件。此文件将包含集群节点的所有已添加的 SPN。

示例:

例如,您需要创建包含以下 3 个节点的 SPN 的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 文件夹中创建包含控制节点 SPN 的 filename1.keytab 文件,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser squid-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\keytabs\filename1.keytab

要再添加一个 SPN,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser squid-user2@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab

要添加第三个 SPN,您必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser squid-user3@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

这将导致创建一个名为 filename3.keytab 的文件,其中包含所有三个添加的 SPN。

页面顶端